package com.ruihu.admin.module.business.task.domain.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruihu.admin.common.validator.daterange.DateRangeValidate;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.*;
import java.util.Date;

/**
 * 更新 [ 任务主表 ]
 *
 * @author Tony
 * @version 1.0
 * @company 瑞虎（南京）信息技术有限公司
 * @copyright (c) 2018 瑞虎（南京）信息技术有限公司Inc. All rights reserved.
 * @date  2022-08-26 20:42:35
 * @since JDK1.8
 */
@Data
@DateRangeValidate(startDateTimeGetter = "getPlanStartTime", endDateTimeGetter = "getPlanEndTime", message = "计划开始时间不能大于计划结束时间")
public class TaskUpdateDTO {

    @ApiModelProperty(value = "任务ID",required = true)
    @NotNull(message = "任务名称不能为空")
    private Long id;

    @ApiModelProperty("任务名称")
    @NotEmpty(message = "任务名称不能为空")
    private String taskName;

    @ApiModelProperty("任务描述")
    private String taskDesc;

    @ApiModelProperty("计划总数")
    @NotNull(message = "任务总数不能为空")
    @Max(9999)
    private Integer planNum;

    @ApiModelProperty("计划开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @NotNull(message = "计划开始时间不能为空")
    private Date planStartTime;

    @ApiModelProperty("计划结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @NotNull(message = "计划结束时间不能为空")
    private Date planEndTime;

    @ApiModelProperty("任务优先级ID")
    @NotNull(message = "任务优先级不能为空")
    private Long priorityId;

}
